package com.young.design.pattern.proxy.cglib;

/**
 * @ClassName : ReadMe
 * @Author : hyy
 * @Date: 2020-03-19
 * 动态代理的逐步实现
 * 1、一个简单的代理类simpleService 实现了crud 操作，这时其他类可以通过创建simpleService对象执行curd操作
 * 2、要求：不能将SimpleService的方法开放给客户使用，只用名称为boss 的才可以使用， 未来不再每一个方法上都加入判断，这时可以使用动态代理来实现
 *      两种方案： 1、jdk动态代理，要求必须实现接口，2、cglib 动态代理，无接口要求
 *      未来不改变已有代码，选用cglib动态代理来实现
 *      步骤：创建方法拦截器 SimpleServiceMethodInterceptor
 *           创建字节吗增强器 Encher
 *           设置父类
 *           设置回调
 *           创建代理对象
 *           调用方法
 * 3、新要求，开放查询方法给任何人调用，其余方法仍然保持只能又boss使用
 *          CGlib给我们提供了方法过滤器（CallbackFilter）,CallbackFilte可以明确表明，被代理的类中不同的方法，被哪个拦截器所拦截
 *
 */
public class ReadMe {
}
